package com.zxw.设计模式.结构型.装饰器模式.装饰者;

import com.zxw.设计模式.结构型.装饰器模式.抽象构建角色.DataLoader;

/**
 * 创建抽象的实现类DataLoderDecorator，但是对业务方法不做任何处理，
 * 进行装饰时只需要再创建一个类继承DataLoderDecorator，重写里面的方法即可，之所以这样是为了 保证被装饰的类没有被 ”污染（添加了其他处理代码）“
 *
 * <p>
 * 原本的业务方法，只有读、写操作，现在又多出个需求需要
 * 1、对写入的数据加密
 * 2、读取的时候进行解密
 * 在这个业务逻辑中修改代码不符合代码的开闭原则，所以需要新建一个类处理，
 * 这个类就是 com.zxw.设计模式.结构型.装饰器模式.装饰者.EncryptionDataDecorator，也是具体的装饰者
 *
 * @projectName: util-cloud
 * @package: com.zxw.设计模式.结构型.装饰器模式.装饰者
 * @className: DataLoderDecorator
 * @author: zhangxuewei
 * @description: 原本的业务方法
 * @date: 2023/7/1 17:32
 * @version: 1.0
 */
public class DataLoderDecorator implements DataLoader {

    private DataLoader dataLoader;

    public DataLoderDecorator(DataLoader dataLoader) {
        this.dataLoader = dataLoader;
    }

    @Override
    public String read() {
        return dataLoader.read();
    }

    @Override
    public void write(String data) {
        dataLoader.write(data);
    }
}
